package com.bitoon.basketdudes.jpa;

import java.io.Serializable;
import java.util.Date;
import javax.persistence.Basic;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.NamedQueries;
import javax.persistence.NamedQuery;
import javax.persistence.Table;
import javax.persistence.Temporal;
import javax.persistence.TemporalType;

/**
 *
 * @author paco
 */
@Entity
@Table(name = "m_jugador", schema="basket")
@NamedQueries({
    @NamedQuery(name = "MJugador.findAll"               , query = "SELECT m FROM MJugador m order by m.id"),
    @NamedQuery(name = "MJugador.findActivosyOcultos"   , query = "SELECT m FROM MJugador m WHERE m.estado< 10 order by m.nivel_ini,m.id"),
    @NamedQuery(name = "MJugador.findActivos"           , query = "SELECT m FROM MJugador m WHERE (m.estado=1 or m.estado=2 or m.estado=3) order by m.id"),
    @NamedQuery(name = "MJugador.findTienda"            , query = "SELECT m FROM MJugador m WHERE (m.estado=1 or m.estado=2 or m.estado=3) order by nivel"),
    @NamedQuery(name = "MJugador.findById"              , query = "SELECT m FROM MJugador m WHERE m.id = :id"),
    @NamedQuery(name = "MJugador.findByNombre"          , query = "SELECT m FROM MJugador m WHERE m.nombre = :nombre"),
    @NamedQuery(name = "MJugador.findByStockTotal"      , query = "SELECT m FROM MJugador m WHERE m.stockTotal = :stockTotal"),
    @NamedQuery(name = "MJugador.findByFIni"            , query = "SELECT m FROM MJugador m WHERE m.fIni = :fIni"),
    @NamedQuery(name = "MJugador.findByFFin"            , query = "SELECT m FROM MJugador m WHERE m.fFin = :fFin"),
    @NamedQuery(name = "MJugador.findByUdsEquipo"       , query = "SELECT m FROM MJugador m WHERE m.udsEquipo = :udsEquipo"),
    @NamedQuery(name = "MJugador.findByRareza"          , query = "SELECT m FROM MJugador m WHERE m.rareza = :rareza"),
    @NamedQuery(name = "MJugador.findByEstado"          , query = "SELECT m FROM MJugador m WHERE m.estado = :estado")})
public class MJugador implements Serializable {
    private static final long serialVersionUID = 1L;
    @Id
    @Basic(optional = false)
    @Column(name = "id")
    private Integer id;
    @Basic(optional = false)
    @Column(name = "nombre")
    private String nombre;
    @Basic(optional = false)
    @Column(name = "pais_id")
    private String paisId;
    @Basic(optional = false)
    @Column(name = "peso")
    private short peso;
    @Basic(optional = false)
    @Column(name = "precio")
    private float precio;
    @Basic(optional = false)
    @Column(name = "puntos")
    private int puntos;
    @Basic(optional = false)
    @Column(name = "nivel")
    private short nivel;
    @Column(name = "f_alta")
    @Temporal(TemporalType.DATE)
    private Date fAlta;
    @Column(name = "posicion1")
    private Short posicion1;
    @Column(name = "posicion2")
    private Short posicion2;
    @Column(name = "posicion3")
    private Short posicion3;
    @Column(name = "altura")
    private Short altura;
    @Column(name = "t1")
    private Short t1;
    @Column(name = "t2")
    private Short t2;
    @Column(name = "t3")
    private Short t3;
    @Column(name = "agresividad")
    private Short agresividad;
    @Column(name = "driblin")
    private Short driblin;
    @Column(name = "pase")
    private Short pase;
    @Column(name = "rebote_ataque")
    private Short reboteAtaque;
    @Column(name = "rebote_defensa")
    private Short reboteDefensa;
    @Column(name = "defensa")
    private Short defensa;
    @Column(name = "robo")
    private Short robo;
    @Column(name = "tapon")
    private Short tapon;
    @Column(name = "resistencia")
    private Short resistencia;
    @Column(name = "velocidad")
    private Short velocidad;
    @Column(name = "sprint")
    private Short sprint;
    @Column(name = "teamwork")
    private Short teamwork;
    @Column(name = "nombre_real")
    private String nombreReal;
    @Column(name = "apellido_real")
    private String apellidoReal;
    @Column(name = "stock_total")
    private Integer stockTotal;

    @Column(name = "vendidas")
    private Integer vendidas;
    @Column(name = "devueltas")
    private Integer devueltas;

//    private int push;
    
    @Column(name = "f_ini")
    @Temporal(TemporalType.TIMESTAMP)
    private Date fIni;
    @Column(name = "f_fin")
    @Temporal(TemporalType.TIMESTAMP)
    private Date fFin;
    @Column(name = "uds_equipo")
    private Short udsEquipo;
    @Column(name = "estado")
    private Short estado;
    @Column(name = "rareza")
    private Integer rareza;
    @Column(name = "nivel_ini")
    private Integer nivel_ini;
    @Column(name = "nombre_interno")
    private String nombre_interno;
    @Column(name = "descripcion")
    private String descripcion;
    @Column(name = "etiqueta")
    private int etiqueta;

    @JoinColumn(name = "escuela_id", referencedColumnName = "id")
    @ManyToOne(optional = false, fetch = FetchType.LAZY)
    private Escuela escuela;

    @JoinColumn(name = "trait_id", referencedColumnName = "id")
    @ManyToOne(optional = true, fetch = FetchType.LAZY)
    private Trait trait;
    
    
    public MJugador() {
    }

    public MJugador(Integer id) {
        this.id = id;
    }

    public MJugador(Integer id, String nombre, String paisId, short peso, float precio, int puntos, short nivel) {
        this.id = id;
        this.nombre = nombre;
        this.paisId = paisId;
        this.peso = peso;
        this.precio = precio;
        this.puntos = puntos;
        this.nivel = nivel;
    }

    public Integer getId() {
        return id;
    }

    public void setId(Integer id) {
        this.id = id;
    }

    public String getNombre() {
        return nombre;
    }

    public void setNombre(String nombre) {
        this.nombre = nombre;
    }

    public String getDescripcion() {
        return descripcion;
    }

    public void setDescripcion(String v) {
        this.descripcion = v;
    }


    public String getPaisId() {
        return paisId;
    }

    public void setPaisId(String paisId) {
        this.paisId = paisId;
    }

    public short getPeso() {
        return peso;
    }

    public void setPeso(short peso) {
        this.peso = peso;
    }

    public float getPrecio() {
        return precio;
    }

    public void setPrecio(float precio) {
        this.precio = precio;
    }

    public int getPuntos() {
        return puntos;
    }

    public void setPuntos(int puntos) {
        this.puntos = puntos;
    }

    public short getNivel() {
        return nivel;
    }

    public void setNivel(short nivel) {
        this.nivel = nivel;
    }

    public Date getFAlta() {
        return fAlta;
    }

    public void setFAlta(Date fAlta) {
        this.fAlta = fAlta;
    }

    public Short getPosicion1() {
        return posicion1;
    }

    public void setPosicion1(Short posicion1) {
        this.posicion1 = posicion1;
    }

    public Short getPosicion2() {
        return posicion2;
    }

    public void setPosicion2(Short posicion2) {
        this.posicion2 = posicion2;
    }

    public Short getPosicion3() {
        return posicion3;
    }

    public void setPosicion3(Short posicion3) {
        this.posicion3 = posicion3;
    }

    public Short getAltura() {
        return altura;
    }

    public void setAltura(Short altura) {
        this.altura = altura;
    }

    public Short getT1() {
        return t1;
    }

    public void setT1(Short t1) {
        this.t1 = t1;
    }

    public Short getT2() {
        return t2;
    }

    public void setT2(Short t2) {
        this.t2 = t2;
    }

    public Short getT3() {
        return t3;
    }

    public void setT3(Short t3) {
        this.t3 = t3;
    }

    public Short getAgresividad() {
        return agresividad;
    }

    public void setAgresividad(Short agresividad) {
        this.agresividad = agresividad;
    }

    public Short getDriblin() {
        return driblin;
    }

    public void setDriblin(Short driblin) {
        this.driblin = driblin;
    }

    public Short getPase() {
        return pase;
    }

    public void setPase(Short pase) {
        this.pase = pase;
    }

    public Short getReboteAtaque() {
        return reboteAtaque;
    }

    public void setReboteAtaque(Short reboteAtaque) {
        this.reboteAtaque = reboteAtaque;
    }

    public Short getReboteDefensa() {
        return reboteDefensa;
    }

    public void setReboteDefensa(Short reboteDefensa) {
        this.reboteDefensa = reboteDefensa;
    }

    public Short getDefensa() {
        return defensa;
    }

    public void setDefensa(Short defensa) {
        this.defensa = defensa;
    }

    public Short getRobo() {
        return robo;
    }

    public void setRobo(Short robo) {
        this.robo = robo;
    }

    public Short getTapon() {
        return tapon;
    }

    public void setTapon(Short tapon) {
        this.tapon = tapon;
    }

    public Short getResistencia() {
        return resistencia;
    }

    public void setResistencia(Short resistencia) {
        this.resistencia = resistencia;
    }

    public Short getVelocidad() {
        return velocidad;
    }

    public void setVelocidad(Short velocidad) {
        this.velocidad = velocidad;
    }

    public Short getSprint() {
        return sprint;
    }

    public void setSprint(Short sprint) {
        this.sprint = sprint;
    }

    public Short getTeamwork() {
        return teamwork;
    }

    public void setTeamwork(Short teamwork) {
        this.teamwork = teamwork;
    }

    public String getNombreReal() {
        return nombreReal;
    }

    public void setNombreReal(String nombreReal) {
        this.nombreReal = nombreReal;
    }

    public String getApellidoReal() {
        return apellidoReal;
    }

    public void setApellidoReal(String apellidoReal) {
        this.apellidoReal = apellidoReal;
    }

    public Integer getStockTotal() {
        return stockTotal;
    }

    public void setStockTotal(Integer stockTotal) {
        this.stockTotal = stockTotal;
    }

    public Integer getVendidas() {
        return vendidas;
    }

    public void setVendidas(Integer vendidas) {
        this.vendidas = vendidas;
    }

    public Integer getDevueltas() {
        return devueltas;
    }

    public void setDevueltas(Integer valor) {
        this.devueltas = valor;
    }

    public Date getFIni() {
        return fIni;
    }

    public void setFIni(Date fIni) {
        this.fIni = fIni;
    }

    public Date getFFin() {
        return fFin;
    }

    public void setFFin(Date fFin) {
        this.fFin = fFin;
    }

    public Short getUdsEquipo() {
        return udsEquipo;
    }

    public void setUdsEquipo(Short udsEquipo) {
        this.udsEquipo = udsEquipo;
    }

    public Short getEstado() {
        return estado;
    }

    public void setEstado(Short estado) {
        this.estado = estado;
    }

    public int getRareza() {
        return estado;
    }

    public void setRareza(int estado) {
        this.rareza = estado;
    }

    public Escuela getEscuela() {
        return escuela;
    }

    public void setEscuela(Escuela escuela) {
        this.escuela = escuela;
    }

    public Trait getTrait() {
        return trait;
    }

    public void setEscuela(Trait valor) {
        this.trait = valor;
    }
    
    public String getNombreInterno() {
        return nombre_interno;
    }

    public void setNombreInterno(String v ) {
        this.nombre_interno = v;
    }

    public int getEtiqueta() {
        return etiqueta;
    }

    public void setEtiqueta(int valor) {
        this.etiqueta = valor;
    }

    @Override
    public int hashCode() {
        int hash = 0;
        hash += (id != null ? id.hashCode() : 0);
        return hash;
    }

    @Override
    public boolean equals(Object object) {
        // TODO: Warning - this method won't work in the case the id fields are not set
        if (!(object instanceof MJugador)) {
            return false;
        }
        MJugador other = (MJugador) object;
        if ((this.id == null && other.id != null) || (this.id != null && !this.id.equals(other.id))) {
            return false;
        }
        return true;
    }

    @Override
    public String toString() {
        return "com.bitoon.basketdudes.jpa.MJugador[id=" + id + "]";
    }

    public int getNivelIni() {
        return nivel_ini;
    }

    public void setNivelIni(int push) {
        this.nivel_ini = push;
    }

}
